package com.cskaoyan.mall.product.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cskaoyan.mall.product.dto.*;
import com.cskaoyan.mall.product.model.SkuInfo;
import com.cskaoyan.mall.product.query.SkuInfoParam;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface SkuService {

    /**
     * 保存SKU
     */
    void saveSkuInfo(SkuInfoParam skuInfoParam);

    /**
     * 根据分页参数查询SKU分页数据
     */
    SkuInfoPageDTO getSkuPageList(Page<SkuInfo> pageParam);

    /**
     * SKU商品上架
     */
    void onSale(Long skuId);

    /**
     * SKU商品下架
     */
    void cancelSale(Long skuId);

    /**获取SKU的价格*/
    BigDecimal getSkuPrice(Long skuId);

    /**获取SKU信息详情，包括图片信息*/
    SkuInfoDTO getSkuInfo(Long skuId);

    /**根据skuId和spuId获取商品销售属性，包含是否是当前sku商品属性的判断*/
    List<SpuSaleAttrInfoDTO> getSpuSaleAttrListCheckBySku(Long skuId, Long spuId);

    /**根据skuId获取 平台属性 - 规格与包装信息*/
    List<PlatformAttrInfoDTO> getPlatformAttrInfoBySku(Long skuId);

    /**拼接属性值信息*/
    Map<String, Long> getSkuValueIdsMap(Long spuId);
}
